The use of a cache memory with a processor is well known in the computer art. A primary purpose of utilizing cache memory is to bring the data closer to the processor in order for the processor to operate on that data. It is generally understood that memory devices closer to the processor have faster data access times than memory devices farther away on the data path from the processor. However, there is a cost trade-off in utilizing faster memory devices. The faster the data access, the higher the cost to store a bit of data. Accordingly, a cache memory tends to be much smaller in storage capacity than main memory, but is faster in accessing the data.
A characteristic common to most Reduced Instruction Set Computer (RISC) architectures is the use of a load/store architecture. That is, memory can only be accessed by load and store instructions. All other operations are performed on data stored in processor registers (register file). This approach separates the accessing of memory from data manipulation operation, thereby allowing the complier to schedule loads to the processor registers to avoid pipeline stalls.
Typically, a RISC processor includes a simple instruction issue and register dependency logic that only allows one outstanding cache miss. A cache miss is a request to read from memory which cannot be satisfied from the cache, for which the main memory has been consulted. This logic reduces the area, cost, and power consumption of the processor. An outstanding cache miss means the cache memory can continue to be accessed by other instructions until a second miss occurs. That is, all further accesses to the cache memory are stalled until the first outstanding cache miss has been resolved.
Another characteristic common to most RISC architectures is the use of virtual memory (addresses) to access memory. The virtual memory addresses are translated (mapped) to physical (real) addresses for example, through a memory management unit. The purpose of virtual memory is to enlarge the address space, the set of addresses a processor can utilize.